<?php

namespace App\Models;

use App\Traits\UseFund;
use Illuminate\Database\Eloquent\Model;

// 每周期的流水
class OwnerItem extends Model
{
    use UseFund;

    protected $fillable = [
        'count',
        'pay_at',
        'rent',
        'other_amount',
        'status',
        'type',
        'exceed_day',
        'total_amount',
        'started_at',
        'ended_at',
        'once'
    ];

    protected $casts = [
        'other_amount' => 'json',
        'once' => 'json'
    ];

    const STATUS_PAY_SUCCESS = 'success'; // 支付成功
    const STATUS_PAY_ERROR = 'error'; // 支付失败
    const STATUS_PAY_PENDING = 'pending'; // 待支付

    public static $statusMap = [
        self::STATUS_PAY_ERROR => '支付失败',
        self::STATUS_PAY_SUCCESS => '支付成功',
        self::STATUS_PAY_PENDING => '待支付'
    ];

    const TYPE_DEFAULT = 'default';  // 正常的流水， （合同周期 * 整数倍数 + 开始时间 = 结束时间）
    const TYPE_EXCEED = 'exceed';    // 时间超出的流水， (合同周期 * 整数倍数 + 开始时间 != 结束时间)

    public static $typeMap = [
        self::TYPE_DEFAULT => '正常合同',
        self::TYPE_EXCEED => '周期不成倍数合同',
    ];

    public function owner()
    {
        return $this->belongsTo(Owner::class);
    }

    public function meter()
    {
        return $this->hasMany(Meter::class);
    }
}
